package cn.mbz.blog.admin.webapi.mapper;

import cn.mbz.blog.commons.pojo.dto.AdminSimpleDTO;
import cn.mbz.blog.commons.pojo.dto.RoleSimpleDTO;
import cn.mbz.blog.commons.pojo.vo.AdminSimpleVO;
import cn.mbz.blog.commons.pojo.vo.RoleSimpleVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

@Repository
public interface AdminMapper {
    /**
     * 添加管理员方法
     * @param adminSimpleDTO
     * @return
     */
    int insertAdmin(AdminSimpleDTO adminSimpleDTO);

    /**
     * 添加管理员的角色
     * @param adminId
     * @param roleId
     * @return
     */
    int insertAdminRole(@Param("adminId") Long adminId,@Param("roleId") Long roleId);

    /**
     * 添加角色信息
     * @param roleSimpleDTO
     * @return
     */
    int insertRole(RoleSimpleDTO roleSimpleDTO);

    /**
     * 根据管理员id和角色id删除管理员和角色对应的信息
     * @return
     */
    int deleteAdminRoleByAdminIdAndRoleId(@Param("adminId") Long adminId, @Param("roleId") Long roleId);

    /**
     * 根据name查询管理员的基本信息
     * @param name
     * @return
     */
    AdminSimpleVO getAdminByName(String name);

    /**
     * 根据角色id查找角色基本信息
     * @param id
     * @return
     */
    RoleSimpleVO getRoleById(Long id);

    /**
     * 根据管理员id和角色id查找对应关系id
     * @param adminId
     * @param roleId
     * @return
     */
    Long getIdByAdminIdAndRoleId(@Param("adminId") Long adminId,@Param("roleId") Long roleId);

    /**
     * 根据角色名查询角色信息
     * @param name
     * @return
     */
    RoleSimpleVO getRoleByName(String name);




}
